#pragma once

#include <iostream>
#include <vector>
#include <string>
#include "actuator/class_custom.h"
#include <yaml-cpp/yaml.h>
#include "common_lib/common.h"

namespace actuator
{
class AMRKinematicModeBase
{
public:
    virtual ~AMRKinematicModeBase() {}

    virtual bool Init(std::string &path) = 0;
    virtual void KinematicMode(float speed, float angle_speed, float speed_towards, eMoveMode mode, AMRCmdAndState &amr_state) = 0;
    virtual void VehicleInverseMode(AMRCmdAndState &amr_state, float &speed, float &angle_speed, float &steer_angle) = 0;

    float cmd_speed_;
    float cmd_angle_speed_;
    float cmd_speed_toward_;

    float ret_speed;
    float ret_angle_speed_;
    float ret_speed_toward_;
};
}


